package com.yangyouli.unity_demo_server.util;
/**
 * byte 数组 与 int 间的转化
 * @author 24279
 *
 */
public class ByteHelper {
	/**
	 * 将 int 数字转化为 byte 数组
	 * @param num
	 * @return
	 */
	public static byte[] intToBytes (int num) {
		byte[] data = new byte[4];
		data[0] = (byte)(num & 0xff);
		data[1] = (byte)((num >>> 8) & 0xff);
		data[2] = (byte)((num >>> 16) & 0xff);
		data[3] = (byte)((num >>> 24) & 0xff);
		return data;
	}
	
	/**
	 * 将 byte 数组转化为 int，从 start 索引开始读取4个元素
	 * @param data
	 * @param start 开始索引
	 * @return
	 */
	public static int bytesToInt (byte[] data, int start) {
		if (data.length >= 4 + start)
			return (data[start + 3] & 0xff) << 24
					| (data[start + 2] & 0xff) << 16
					| (data[start + 1] & 0xff) << 8
					| (data[start] & 0xff);
		else
			System.out.println("将 byte 数组转化为 int 时，其开始到末尾的长度必须大于等于4");
			return 0;
	}
	
	/**
	 * 将 byte 数组转化为 int, 从0开始读取4个元素
	 * @param data
	 * @return
	 */
	public static int bytesToInt (byte[] data) {
		return bytesToInt(data, 0);
	}
}
